perm filename CHPT4.TXT[DOC,TOB] blob
sn#143017 filedate 1975-01-24 generic text, type T, neo UTF8
5. Automatic Generation of Object Finding Strategies
5.1 Introduction
In this section we describe a system which can be rapidly
programmed to find major surfaces in relatively complex
real-world environments. Objects are designated to the system
by circling examples with a cursor in a displayed image.
The system then formulates a strategy for finding the object based on
knowledge of available picture processing techniques and about the makeup
of the current pictorial domain. The resulting program
is then run on representative scenes and
debugged interactively as errors materialize.
This work is part of a system which can be rapidly programmed
to find objects in office scenes as described in [1].
Previously we have used ISIS to develop
interactively a set of procedures for finding objects in
office scenes. The basic idea underlying these
strategies is to rapidly disqualify obviously
irrelevant areas of the scene by sampling for
characteristic attributes of the desired object *.
Additional local properties are then tested to
eliminate those samples belonging to other objects
which share the acquisition attributes. The surface
containing the acquired samples is then bounded and the
resulting region tested for appropriate size and
shape. Programs of this sort have been developed for
finding various objects commonly founnd in office scenes
(including door, table, chair, wall, picture, and floor).
--------------------------------------------------------
* The object being sought will often be referred to as
the "target object", "target", or, sometimes, just the
object.
--------------------------------------------------------
A plan for finding a door might consist of
acquiring samples at a height likely to contain few
things besides a door, and then validating by
eliminating those samples which on the basis of
remaining local attributes have low likelihood of being
part of a door. The door boundary is then obtained by
growing a region around the initial samples using
attributes such as hue and saturation. One alternative
approach would be to first scan downward from the top
of the image to a point whose height is unique to door
and wall. The edge of the door is then obtained by
scanning horizontally from this point, seeking an
abrupt change in saturation. (Doors in SRI offices are
deep brown while walls are tan.) If this edge has
sufficient vertical extent, the door boundary is then
inferred from the known shape and size of our
office doors and the local surface orientation measured
in the image on the door's side of the discontinuity.
Finally, the computed edges are confirmed by testing
for evidence of the predicted boundaries in the image.
The above strategies can be schematized
into acquisition, validation, and bounding phases.
Specific techniques for accomplishing each phase are
chosen from available methods on the basis of current
information about the pictorial domain.
5.1.1 Acquisition Methods
The most straightforward way of acquiring samples of
the object is to filter random picture samples,
rejecting any sample which fails to pass a predicate
descriptive of the desired object. For example, the
sampled scene may be filtered to retain only those
samples at a certain height. alternatively, the scene
can be sampled along a locus to detect distinguishing
boundary discontinuities. These predicates are
generated automatically from pictorial examples.
5.1.2 Validation Methods
Acquired samples are validated by checking additional
local characteristics that distinguish the desired
object from others with common acquisition attributes.
These additional attributes are examined
sequentially, reducing the number of samples that must
be examined by successive tests.
Total cost is minimized by deferring
computationally expensive procedures. When
the cost of planning the optimal order exceeds the
known cost of using all remaining attributes, samples
are classified with respect to possible objects. Those
samples judged likely to belong to the desired object
are retained. Samples along a boundary are further validated
by testing the boundary length, strength and orientation
using suitable masks.
5.1.3 Bounding Methods
The final bounding phase is accomplished in various
ways. Given a suitable geometric model of the object
and a projective camera transform, a procedure can
compute analytically the best global boundary
consistent with detected edge points. The computed
boundary can be projected onto the image and validated
using extent masks as above.
Procedural models are available for common surface
types such as horizontal and vertical
rectangles. In the absence of such models, a region
may be grown around validated points; neighbors of
validated samples which pass a chosen predicate (often
the acquisition predicate) are added to a push-down
stack. Neighbors of points on this stack are then
examined recursively. All accepted points are
collected together into a region, for which a crude
boundary can be obtained by computing a convex hull.
5.2 Automatic Generation of Predicates
The work described here is an attempt to automate three key
decisions involved in planning a distinguishing features strategy:
(1) What attributes should be used for acquiring
initial samples?
(2) What attributes should be used for validating
those samples?
(3) What attributes should be used in region
growing to obtain a complete outline?
All three decisions involve distinguishing a desired surface
in a context of other surfaces that may be present.
Acquisition, for instance, involves distinguishing a surface
from other known surfaces in a domain, validation from
other surfaces known to satisfy the acquisition attributes, and
bounding from all surfaces that could possibly be adjacent
to it in the image.
In order to explain predicate generation,
a digression to describe the data base is required.
Objects are characterized by local surface attributes,
symbolic properties, and relations with other objects.
The local surface attributes which are currently used as
descriptors are: brightness, color (separated into hue and
saturation components),
and, when range data is available, height and local surface orientation
(referred to as "orientation"). Local properties are stored as cumulative
histograms representing the probability density functions for the
object's attribute values. These histograms allow the probability of
of an object having an attribute in a given range to be computed by a
simple subtraction. These histograms may be augmented by
symbolic properties such as
boundary descriptions, size and extent values, surface characteristics
(e.g. horizontal), and spatial relations (e.g. adjacent-to, above,
or left-of). The creation and modification of these descriptions
will be elaborated below.
A detector (or a "simple detector") is a procedure
that checks whether a sample's attribute value lies
within a given contiguous range of attribute values.
A "composite detector" is a conjunction of
simple detectors. A "predicate" is the corresponding LISP
program for a detector. A predicate returns T (true) if the value
is within the range, NIL (false) otherwise. The terms detector
and predicate will often be used synonomously.
5.2.1 Design of Acquisition Predicates
Filtering randomly selected samples
with a predicate which accepts only those of interest,
has proved to be an extremely useful acquisition tool in
manual strategies. Acquisition predicates should pass a few
points on the desired object while excluding all
others. They should be as cheap and reliable as
possible. Naturally, these desires are somewhat
contradictory; usually a detector that
allows most points on the target object to pass, will
also pass some points from other objects.
To overcome this difficulty, the program attempts
to generate compound detectors that exclude all samples from
undesired objects, allowing at least a few points
on the desired object to pass. The program returns a list of any
undesired objects which cannot be completely excluded so that
these may be distinguished subsequent to filtering, using more
expensive global attributes.
The expected cost and confidence of applying a detector
can be computed for each object. The confidence of an
object given a detector is loosely defined as the probability
that a sample accepted by the detector belongs to the object
in question. The complete derivation is contained in
Appendix 1. Cost is defined as the expected cost
(measured in milliseconds of CPU time) of application
of the detector to the image. Given a detector and the expected
number of points from the set to be filtered that will be both
part of the object, and accepted
by the detector, it is possible to compute the sampling
frequency and the anticipated cost. This derivation is also
contained in Appendix 1.
The quality of a detector is evaluated using a
heuristic function of cost and confidence that
reflects the design priorities listed above.
With this detector quality function, Q (described below), the
generation of good compound detectors becomes (for combinatorial reasons)
a problem in heuristic search. The search proceeds as follows.
First a good initial set of simple detectors is selected.
The candidate detector with the best Q is then combined with others to see
if the combination improves the Q function. The best combination,
in turn, is combined with remaining candidates and so on,
until a terminating
condition is reached; either the set of candidates is exhausted,
some combination exceeds a preset Q threshold, or some effort
bound is exceeded.
The heuristic quality function, Q, which is used to
order a set of detectors, is shown graphically
in Figure 29. Its maximum value is the confidence
of the object and detector (which cannot be
greater than 1.0) and it's minimum value is 0. The cost of
applying the detector determines where the detector
falls on the curve. For equal confidence, and costs
below a certain minimum, MINCST (currently equal to 2
seconds), the Q function is indifferent as to which
detector is selected. For costs above a certain
maximum, MAXCST (now set to 100 seconds), the function
returns 0. In essence, any cost below MINCST is effectively
zero and any cost above MAXCST is effectively
infinite. In between, the curve is linear with a slope
determined by the confidence, MINCST and MAXCST. By
making the maximum value of Q be the confidence, added
emphasis is given to the goal of producing high
confidence tests. Of two competing tests, the one
with lower confidence must also have lower costs in
order to be considered better. Q was defined
empirically to provide the functional characteristics
detailed above. The parameter values were also chosen
empirically on the basis of best results.
Two heuristics are used to select candidate
simple detectors. The first uses the
function, PEAKS, to locate peak attribute values for
the object. PEAKS examines the characterization of the
object (which are probability density curves and will
be discussed later) for a peak providing a certain
minimum area underneath. The function will then narrow
the peak if it can do so without significantly
decreasing the area. Minimum acceptable peak size and
other variables are empirically determined parameters.
PEAKS which currently can only find a single peak for
each attribute curve, outputs a set of simple detectors
corresponding to the attributes considered.
The second selection program, MINRANGE,
generates distinguishing detectors by looking for
contiguous ranges of attribute values which minimize
the set of ambiguous objects. This is accomplished by
scanning a range of an attribute for the target object,
checking to see what other objects share the range.
MINRANGE also returns a set of single detectors.
The present implementation of the heuristic
predicate generator creates only composite detectors from the
initial set supplied by PEAKS and MINRANGE.
The program cannot yet generate detectors which are disjunctions
(such as might be required for locating a red and white
checkered tablecloth), or decision trees. Despite these
limitations (which will probably be removed in the future),
the detectors generated are quite effective.
To generate these composite detectors, the program, DACQ
(Default ACQuisition), selects the current best (in
terms of Q) detector on the list and tries to combine
it with all the simple detectors on the initial list.
Detectors which would violate the description given
above (e.g., which would combine two detectors with the
same attribute), or those where the composite doesn't
have a smaller ambiguity set than the parents are not
considered. When a candidate is selected, a composite
detector is formed and retained only if its value of
Q is higher than that of both parents. Before adding
the new candidate to the appropriate spot in the list
of detectors, a quick check is made to see if it could
ever be better than the current best detector. This is
done by computing Q for a hypothetical detector with
the same cost, but with a confidence of 1. If the Q
of this combination is higher than the best Q so far,
the new candidate is kept. Otherwise, it is discarded.
A candidate that is retained, is added to the
proper location in the ordered list of candidates.
After the first detector has been tried with all the
possible single detectors, it is marked as having been
expanded, and DACQ iterates with the new list. If no
candidates were retained, DACQ continues with the next
best detector on the list.
When there are no more candidates, or when a
detector is generated with a Q above a certain
threshold, the program terminates, returning the
complete ordered list of detectors generated.
DACQ spends considerable time attempting
minor improvements to its best candidates. Therefore,
a CPU time limit was provided to allow the user to
decide how much effort DACQ should expend. If the
time quantum provided by the user is exceeded, the
program interrupts, prints the best candidate, and asks
the user whether it should continue. If the reply is
NO, or there is no reply within ten seconds (equivalent
to a NO reply), DACQ terminates with the best so far.
If the user wishes to proceed, DACQ will continue for
another quantum of time. The predicates produced by
DACQ within the time constraints (currently about 10
seconds) are typically the same as those produced by
letting it run to completion. Also, the detectors
produced are usually as good or better than predicates
defined manually by experienced users and often they
are the same!
The final steps in the automation of
filtering are straightforward. The best compound detector
is converted to an equivalent LISP LAMBDA expression
which is then compiled and saved. The system already knows
what sampling density is required for the detector,
since it is a by-product of the cost computation (see
Appendix 1). The image is then randomly sampled at the
appropriate density, and the resulting samples are filtered
with the LISP predicate to obtain a few acquisition samples.
These samples may need further validation tests to discriminate
residual ambiguities. Examples are found in section 5.3.
5.2.2 Design of Bounding Predicates
The next step in object finding after validating the acquisition
samples is to extract the boundary of the surrounding surface
Bounding a single specific object is a significanntly different
task than the global scene partitioning described in Section IV
of this report.
In object bounding, a region is grown from
acquisition samples by including all contiguous samples
which satisfy an appropriate bounding predicate. Specifically,
the program, GROW, applys the predicate to samples
adjacent to the acquisition samples. If a sample is
accepted, its neighbors (either 4-adjacent or 8-adjacent)
are added to a list to be recursively examined.
When all possible samples have accreted to the original
set, GROW returns the resulting new region.
The bounding predicates differ from acquisition
predicates in two important ways. First, the particular region
being bounded need only be distinguished from pictorially adjacent
objects, as opposed to all objects in the scene. Second,
region growth requires predicates capable of collecting all points
on the object.
The basic region grower can be speeded up by scanning
out horizontally and vertically from the initial acquisition
samples until a discontinuity is detected. Points located
on the boundary are then joined into a new, larger region,
and GROW used to fill in any holes.
Scanners are good for quickly locating
edges, but suffer by requiring that all points between
the starting point and the desired edge point pass the
predicate. A point that fails, terminates the scan.
The region grower is less directed, but as a result,
can "go around" isolated points where the predicate
fails. The combination of scanning and growing has proven
very effective.
Since the predicate must accept all points on
the object, the task of generating an initial predicate
is greatly simplified--we need only create detectors
based on the complete range for all attributes (a
"full-range detector"). There is relatively little risk in
using these wide range detectors, since they need only
discriminate objects adjacent to the acquired object.
However, if the system has specific
knowlege about object adjacencies, the full-range predicate
can be refined by conjoining it with negated full-range
predicates for those adjacent objects.
A major shortcoming of the above approach
is that the region growing predicates are
applied uniformly to all points. Often,
it is known that the color (say) of a region is
darker at the bottom than at the top. Such information
should be used to produce more selective predicates
that respond differently at different points in the region.
Predicates could also be designed which continuously change
their expectation of what should come next, based on what
has recently been seen.
Other shortcomings are due to poor predicate
specification from the outset. This can arise from the
system receiving an incomplete description of the
object initially, perhaps not knowing enough about
other objects in the environment, or often not knowing
of good descriptors which although obvious to a person
may not be obvious to the system. Remedies for these
shortcomings will be discussed in an upcoming dissertation [25].
In the coming months, the semantic segmentation
techniques described in Section IV will be studied
as an alternative means of bounding objects.
GROW functions strictly by growing regions outward from initial
kernal points on the target object. The other segmentation
system could be used to grow simultaneously from kernals on the
target and on adjacent objects. Additional knowledge about
relationships of the target and its neighbors could be utilized
to obtain improved boundaries.
5.3 Examples
Figures 30 through 37 illustrate the object
finding process using the image shown in Figure 1b.
The objects to be located
are the picture and the major surfaces of the chair, the
seat and the back. These objects (along with others
which appear in the image) were shown to the system in other
images of the same scene. Descriptions were automatically
generated and from these
the system was able to create strategies for locating
the objects. In the figures, the regions created in the
course of locating the objects are generally shown as a
boundary with a few points inside. The boundaries (in this
case) are convex hulls created from the samples by ISIS in
order to emphasize the region for the user.
In the LISP predicates mentioned below, the function LIMITP
is used as the primary detector function. its format is:
(LIMITP attribute sample low high). LIMITP returns T if
the attribute of the sample lies within the range from
low to high.
The first example shows the system
locating the picture. Figure 30 gives the result of
filtering a random sampling of the image with the predicate
(LAMBDA (X) (LIMITP (FUNCTION HEIGHT) X 3.19 4.76)).
This predicate keeps only samples at a height
within the range of 3.19 feet to 4.76 feet. Since only
points from the wall, door, and picture should be found at
this height, the validation phase need only distinguish
among these three objects. The results of validation are
shown in Figure 31. The system then grows the region shown
in Figure 32 with the predicate
(LAMBDA (X) (AND (PICP X) (NOT (WALLP X)))).
PICP * is a LISP predicate function, generated by the system
which returns T if the sample has the properties of the picture.
WALLP is a similar predicate for the wall. the complete growth predicate
requires that the sample look like a picture point, but not
like a wall point.
--------------------------------------------------------
* These predicates are conjunctions of full range predicates for
the objects in question. That is, they check that the value of
each attribute of a sample falls within the possible
range of values for the object in question.
---------------------------------------------------------
In Figures 33 through 37, the system locates the
chair seat and back. In Figure
32, the sampled scene has been filtered for points on the
chair back, using the predicate
(LAMBDA (X) (AND (LIMITP HEIGHT X 1.62 2.14)
(LIMITP HUE X 0.0 6.1))).
This predicate checking height and hue,
selects only the single sample shown in the right middle of
the chair back in Figure 33. The sample is retained during
validation, and used as a starting point for the region
grower which generates and uses a predicate to discriminate the
samples of the back from those of adjacent table and wall
areas resulting in the region shown in figure 34.
The acquisition, validation, and bounding process
for the chair seat is shown in Figures 35 through 37.
The region shown in Figure 35 is the result of
filtering with the predicate
(LAMBDA (X) (AND (LIMITP HEIGHT X 1.09 1.62)
(LIMITP ORIENT X 0.0 36.0))),
which selects samples with height and orientation
appropriate for the chair seat. One point is eliminated
during validation, since its color does not match that of the
seat, giving the region shown in Figure 36. Finally,
Figure 37 shows the results of growing with a predicate which
distinguishes the seat from the floor and the wall.